package com.gxa.learning.pc.service;

import com.gxa.learning.core.exception.BusinessException;
import com.gxa.learning.core.pojo.Role;
import com.gxa.learning.core.pojo.RoleMenuVO;
import com.gxa.learning.core.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * @author lijianmin
 * @date 2021/12/07  20:46:31
 */
public interface RoleService extends BaseService<Role> {

    /**
     * 根据条件搜索的方法
     *
     * @param roleName   角色名称
     * @param company    公司名称
     * @param department 部门名称
     * @param state      角色状态
     * @return 返回查询到的集合
     */
    List<RoleMenuVO> selectByLike(String roleName, String company, String department, Boolean state);

    /**
     * 根据id删除角色的接口
     *
     * @param id 删除的角色ID
     * @return 返回是否成功
     * @throws BusinessException 操作中产生的异常
     */
    Boolean deleteByRoleId(Long id) throws BusinessException;

    /**
     * 添加角色的接口
     *
     * @param map 添加的字段
     * @return 返回消息
     * @throws BusinessException 操作中产生的异常
     */
    Boolean add(Map<String, Object> map) throws BusinessException;

    /**
     * 根据id修改角色状态的方法
     *
     * @param id 角色id
     * @return 返回是否成功
     * @throws BusinessException 操作中产生的异常
     */
    Boolean updateState(Long id) throws BusinessException;
}
